<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>

<body>

</body>

</html>
<script>
    // console.log('----字面量创建--------');
    // let obj = {
    //     name: "张三",
    //     sex: "男",
    //     job: "前端开发工程师",
    //     seyHi: function () {
    //         console.log(`${this.name}----${this.sex}----${this.job}`);
    //     }
    // }
    // let objls = {
    //     name: "李四",
    //     sex: "男",
    //     job: "java开发工程师",
    //     seyHi: function () {
    //         console.log(`${this.name}----${this.sex}----${this.job}`);
    //     }
    // }
    // console.log(obj.name);
    // obj.seyHi()
    // objls.seyHi()
    // // 工厂模式创建对象
    // console.log('------工厂模式创建对象-----');
    // function objNew(name, sex, job) {
    //     let obj = new Object()
    //     obj.name = name
    //     obj.sex = sex
    //     obj.job = job
    //     obj.seyHi = function () {
    //         console.log(`${this.name}----${this.sex}----${this.job}`);
    //     }
    //     return obj
    // }
    // let objWw = objNew('王五', '女', '开车')
    // objWw.seyHi()
    // console.log(objWw);
    // let objZl = objNew('赵六', '女', '开车')
    // objZl.seyHi()
    // console.log(objZl);
    // // 构造函数方式创建对象
    // function Person(name, sex, job) {
    //     this.name = name
    //     this.sex = sex
    //     this.job = job
    //     this.seyHi = function () {
    //         console.log(`${this.name}----${this.sex}----${this.job}`);
    //     }
    // }
    // let objPerson = new Person('鲁班七号', '男', '机器人')
    // console.log(objPerson);
    // objPerson.seyHi()
    // // 原型方式创建对象
    // console.log('------原型方式创建对象-----');
    // function objPrto() {
    //     objPrto.prototype.name = '张三'
    //     objPrto.prototype.sex = '女'
    //     objPrto.prototype.job = '敲代码'
    //     objPrto.prototype.seyHi = function () {
    //         console.log(`${this.name}----${this.sex}----${this.job}`);
    //     }
    // }
    // let objPrtoBack = new objPrto()
    // console.log(objPrtoBack);
    // objPrtoBack.seyHi()
    // // 原型和字面量方式创建对象
    // function objPrtoNew() { }
    // objPrtoNew.prototype = {
    //     name: "张三",
    //     sex: "男",
    //     job: "前端开发工程师",
    //     seyHi: function () {
    //         console.log(`${this.name}----${this.sex}----${this.job}`);
    //     }
    // }
    // let objPrtoNewBack = new objPrtoNew()
    // console.log(objPrtoNewBack);
    // //构造 + 原型创建对象
    // function ObjPerson(name, sex, job) {
    //     this.name = name
    //     this.sex = sex
    //     this.job = job
    //     this.seyHi = function () {
    //         console.log(`${this.name}----${this.sex}----${this.job}`);
    //     }
    // }
    // ObjPerson.prototype = {
    //     seyHitwo: function () {
    //         console.log(`${this.name}----${this.sex}----${this.job}`);
    //     }
    // }
    // let newObjPerson = new ObjPerson("王五", "男", "艺人")
    // console.log(newObjPerson);
    // newObjPerson.seyHi()
    // newObjPerson.seyHitwo()
    // 键值对
    // let hero ={
    //     name: '鲁班七号',
    //     skill:'无敌鲨嘴炮',
    // }
    // 点语法
    // let hero ={};
    //     hero.name='鲁班七号';
    //     hero.skill='无敌鲨嘴炮';
    // 表达式
    // let hero ={}
    // hero["hero"+"Name"]="鲁班七号"
    // console.log(hero.heroName);
    // hero.skill1="空中支援"
    // delete hero.skill1;
    // hero.skill="空中支援"
    // console.log(hero);
    // console.log(hero.skill);

    // 对象原型
    function Person() {}
    Person.prototype.name = "issac";
    Person.prototype.age = 29;
    Person.prototype.job = "web Engineer";
    Person.prototype.sayName = function () {
        console.log(this.name);
    };
    // let person1 = new Person();
    // person1.sayName();
    // let person2 = new Person();
    // person2.sayName();
    // console.log(person1.sayName == person2.sayName);

    let person2 = new Person();
    person2.name = 'lily'
    person2.sayName()
</script>